import java.util.*;

public class 滑动窗口 {
	public static void main(String[] args) {
		var sc = new Scanner(System.in);
		var se = new TreeSet();
		var mp = new HashMap();
		int n = sc.nextInt();
		int k = sc.nextInt();
		int[] a = new int[n + 10];
		
		for(int i = 1; i <= n; i ++ ) {
			a[i] = sc.nextInt();
		}
		
		for(int i = 1; i < k; i ++ ) {
			mp.put(i, a[i]);
			se.add(a[i]);
		}
		
		for(int i = k; i <= n; i ++ ) {
			mp.put(i, a[i]);
			se.add(a[i]);
			System.out.print(se.last() + " "); // 获取的是 长度为k的最大值
			se.remove(mp.get(i - k + 1)); // 删除这个 因为超过了长度为k的区间了
		}
	}
}
